Статья добавлена: 2019-05-28 17:12:48
Автор: Сергей

Установка LAMP на FreeBSD

Начнем установку с обновления портов
  • portsnap extract update

Установка apache22


После чего узнаем где у нас лежит apache22
whereis apache22
на что получаем исчерпывающий ответ:
  • apache22: /usr/ports/www/apache22
Переходим в /usr/ports/www/apache22 и запускаем команду:
  • make install clean

После того как apache22 соберется нужно подправить конфигурационный файл
http.conf который находиться в /usr/local/etc/apache22/http.conf и меняем
  • #ServerName www.example.com:80

на
  • ServerName 192.168.1.10:80

Также нужно добавить в файл rc.conf который находиться в /etc/rc.conf
  • apache22_enable="YES"

если мы хотим чтоб apache22 грузился при старте.
Запуск apache22
  • service apache22 start

Иногда apache22 не грузиться и выдает ошибку в файле httpd-error.log который находиться /var/log/messages/httpd-error.log следующего вида
  • (EAI 8)hostname nor servname provided, or not known: mod_unique_id: unable to find IPv4 address of

а в консоль выплевывает
  • WARNING: failed to start apache22

То все что нужно сделать это закомментирывать строку:
  • LoadModule unique_id_module libexec/apache22/mod_unique_id.so
Сайты после установки apache22 нужно переместить в директорию
  • /usr/local/www/apache22/data/

Установка PHP

Для установки php узнаем где он у нас обитает:
  • whereis php5
    php5: /usr/ports/lang/php5
Переходим в /usr/ports/lang/php5 и запускаем
  • make install clean
открывается окно конфигурации php где обязательно нужно поставить крестик возле
  • APACHE - Build Apache module
для связки apache22 и php. Также в уже изрядно поднадоевший файл http.conf нужно добавить строки
  • AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
Команды AddType связывают расширение файла с интерпретатором php.
Если нужно, чтоб и в .html файлах бы выполнялись php скрипты, то добавьте еще одну строчку:
  • AddType application/x-httpd-php .html
Опция Directorylndex показывает, какие файлы нужно выводить пользователю, если он запросил не конкретный файл, а директорию. Данная настройка приведет к тому, что в при запросе директории apache сперва будет искать файл index.php. если on будет найден, запустит его и выведет результат выполнения пользователю. Если такого файла нет. то тогда он попытается найти файл index.html. Если и такого файла не найдется, то пользователь получит ошибку.
  • Directorylndex index.php index.html

Установка mysql55-server

  • whereis mysql55-server
    cd /usr/ports/databases/mysql55-server
    make install clean
После установки MysSQL55 для того чтоб запустить его нужно:
  • /usr/local/etc/rcd/mysql-server start
Для того чтоб Mysql запускался при старте системы в /etc/rc.conf нужно добавить
  • mysql_enable="YES"
Также нужно установить пароль для пользователя root:
  • mysqladmin -u root password 'пароль рута'
после чего мы можем входить в систему
  • mysql -u root -h localhost -p
Иногда требуется подключится к базе данных из вне например через phpmyadmin для этого заходит в mysql под root и разрешаем подключатся под рутом с определенного хоста
  • GRANT ALL PRIVILEGES ON *.* TO 'root'@'host' IDENTIFIED BY 'password' WITH GRANT OPTION;
После чего выполняем команду:
  • FLUSH PRIVILEGES;
Для того чтоб создать пользователя нужно:
  • grant usage on *.* to login@localhost identified by 'password';
Для того чтоб дать полные права на базу данных пользователю
  • grant all privileges on name_db.* to login@localhost;
Просмотреть пользователей и с каких хостов есть доступ:
  • SELECT USER,host from mysql.user;
Просмотреть права для определенного пользователя
  • show grants for "pufixy"@"%.wiset.pp.ua";
Или вот так для локального пользователя:
  • SHOW GRANTS FOR 'root'@'localhost';
Дать права с определенного хоста пользователю root
  • GRANT ALL PRIVILEGES ON *.* TO 'root'@'WANIP' IDENTIFIED BY 'PASSWORD';
Дать права с удаленного хоста на определенную базу
  • GRANT ALL PRIVILEGES ON newlviv.* TO newlviv@wanip IDENTIFIED BY 'password';
Забрать права на удаленный доступ
  • REVOKE ALL PRIVILEGES ON newlviv.* FROM 'newlviv'@'wanip';
Удалить удаленный доступ для пользователя
  • DELETE FROM mysql.user WHERE User='newlviv' AND Host NOT IN ('localhost', '127.0.0.1');

Установка PHP5-EXTENSIONS

Ну вот почти все установили осталась только еще одна приблуда PHP-EXTENSIONS которая нужна для расширения возможностей как php так и mysql.
  • whereis php5-extensions
    cd /usr/ports/lang/php5-extensions
    make all install clean
При появлении конфигурационного окна нужно отметить:
  • MySQL
    MySQLI
Наверно поздновато но лучше так. Во время компиляции, периодически, будут появляться другие конфигурационные окна, в которых если не знаем зачем они ничего не меняем и жмём «Ok». Это касается всех портов.